using System;

namespace B.S.XZYData.Api.Read.DTO
{
    /// <summary>
    /// 不良品汇总数据传输对象
    /// </summary>
    public class DefectiveSummaryDto
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 工单编号
        /// </summary>
        public string WorkOrderCode { get; set; } = string.Empty;

        /// <summary>
        /// 产品编号
        /// </summary>
        public string ProductCode { get; set; } = string.Empty;

        /// <summary>
        /// 产品名称
        /// </summary>
        public string ProductName { get; set; } = string.Empty;

        /// <summary>
        /// 工序编号
        /// </summary>
        public string ProcessCode { get; set; } = string.Empty;

        /// <summary>
        /// 工序名称
        /// </summary>
        public string ProcessName { get; set; } = string.Empty;

        /// <summary>
        /// 生产人员
        /// </summary>
        public string Producer { get; set; } = string.Empty;

        /// <summary>
        /// 生产开始时间
        /// </summary>
        public DateTime? ProductionStartTime { get; set; }

        /// <summary>
        /// 生产结束时间
        /// </summary>
        public DateTime? ProductionEndTime { get; set; }

        /// <summary>
        /// 不良品项
        /// </summary>
        public string DefectiveItem { get; set; } = string.Empty;

        /// <summary>
        /// 工序计划数
        /// </summary>
        public int ProcessPlanQuantity { get; set; }

        /// <summary>
        /// 报工数
        /// </summary>
        public int ReportQuantity { get; set; }

        /// <summary>
        /// 良品数
        /// </summary>
        public int QualifiedQuantity { get; set; }

        /// <summary>
        /// 不良品数
        /// </summary>
        public int DefectiveQuantity { get; set; }

        /// <summary>
        /// 不良率 (%)
        /// </summary>
        public decimal DefectiveRate { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }
    }
} 